<?php

include_once 'header.inc';


// make a note of the current working directory, relative to root.
$directory_self = str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['PHP_SELF']);

// make a note of the directory that will recieve the uploaded file
$uploadsDirectory = $_SERVER['DOCUMENT_ROOT'] . $directory_self . 'avatars/';

// make a note of the location of the upload form in case we need it
$uploadForm = 'http://' . $_SERVER['HTTP_HOST'] . $directory_self . 'register.php';

// make a note of the location of the success page
$uploadSuccess = 'http://' . $_SERVER['HTTP_HOST'] . $directory_self . 'register.php?m=success';

// fieldname used within the file <input> of the HTML form
$fieldname = 'file';

// Now let's deal with the upload

// possible PHP upload errors
$errors = array(1 => 'php.ini max file size exceeded',
                2 => 'html form max file size exceeded',
                3 => 'file upload was only partial',
                4 => 'no file was attached');

// check the upload form was actually submitted else print the form
if (!isset($_POST['submit']))
{
	if($_GET['m'] == 'success')
	{
		print_header("Findr :: Registration successful");
		echo "Registration successful";
		print_footer();
	}
	else
	{
		// make a note of the current working directory relative to root.
		$directory_self = str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['PHP_SELF']);

		// make a note of the location of the upload handler script
		$uploadHandler = 'http://' . $_SERVER['HTTP_HOST'] . $directory_self . 'register.php';

		// set a max file size for the html upload form
		$max_file_size = 30000; // size in bytes

		print_header("Findr");

		echo '

			<form id="Upload" action="' . $uploadHandler . '" enctype="multipart/form-data" method="post">
			
				<h1>Register</h1>
				
				<p>
					<input type="hidden" name="MAX_FILE_SIZE" value="' . $max_file_size . '">
				</p>
				
				<p>
					<label for="file">Avatar:</label>
					<input id="file" type="file" name="file">
				</p>
						
				<p>
					<input id="submit" type="submit" name="submit" value="Upload">
				</p>
			
			</form>

		';

		print_footer();
	}
}
else
{
	// check for PHP's built-in uploading errors
	($_FILES[$fieldname]['error'] == 0)
		or error($errors[$_FILES[$fieldname]['error']], $uploadForm);
		
	// check that the file we are working on really was the subject of an HTTP upload
	@is_uploaded_file($_FILES[$fieldname]['tmp_name'])
		or error('not an HTTP upload', $uploadForm);
		
	// validation... since this is an image upload script we should run a check  
	// to make sure the uploaded file is in fact an image. Here is a simple check:
	// getimagesize() returns false if the file tested is not an image.
	@getimagesize($_FILES[$fieldname]['tmp_name'])
		or error('only image uploads are allowed', $uploadForm);
		
	// make a unique filename for the uploaded file and check it is not already
	// taken... if it is already taken keep trying until we find a vacant one
	// sample filename: 1140732936-filename.jpg
	$now = time();
	while(file_exists($uploadFilename = $uploadsDirectory.$now.'-'.$_FILES[$fieldname]['name']))
	{
		$now++;
	}

	// now let's move the file to its final location and allocate the new filename to it
	@move_uploaded_file($_FILES[$fieldname]['tmp_name'], $uploadFilename)
		or error('receiving directory insuffiecient permission', $uploadForm);
		
	// If you got this far, everything has worked and the file has been successfully saved.
	// We are now going to redirect the client to a success page.
	header('Location: ' . $uploadSuccess);
}

// The following function is an error handler which is used
// to output an HTML error page if the file upload fails
function error($error, $location, $seconds = 5)
{
    header("Refresh: $seconds; URL=\"$location\"");
	print_header("Error");
    echo '<div id="Upload">'."\n\n".
    '        <h1>Upload failure</h1>'."\n\n".
    '        <p>An error has occured: '."\n\n".
    '        <span class="red">' . $error . '...</span>'."\n\n".
    '         The upload form is reloading</p>'."\n\n".
    '     </div>';
	print_footer();
    exit;
} // end error handler

?> 